/*
 * Copyright (c) 2007 T.Cogghe, D.Leroux, S.Lévignac, S.Rives
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
#include "IHM/dialogueSauver.hh"



IHM::DialogueSauver::DialogueSauver(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade)
	: Gtk::FileChooserDialog(cobject) //m_refGlade(refGlade),
{
	Gtk::Button*b;
	getW(refGlade,b,"b_Save_Annuler");
	b->signal_clicked().connect(sigc::mem_fun(*this,&DialogueSauver::annuler));
	getW(refGlade,b,"b_Save_OK");
	b->signal_clicked().connect(sigc::mem_fun(*this,&DialogueSauver::ok));
}

IHM::DialogueSauver::~DialogueSauver() {}



void IHM::DialogueSauver::ok() {
	/* TODO */
	std::string filename=get_filename();
	std::string ext=filename.substr(filename.size()-4,4);
	Glib::ustring filetype;
//	g->xml->get_widget("bRad_Save_JPEG",b);
	//{
	//	Gtk::RadioButton*b=0;
	//	if(b->get_active()) {
	if(ext==".jpg"||ext==".JPG") {
		filetype="jpeg";
	} else {
		filetype="png";
	}
	//}
	
	(**IHM::env->iFin)->save(filename,filetype);

	hide();
}


void IHM::DialogueSauver::annuler() {
	hide();
}

